A presentation architecture such as the Advanced Function Presentation (AFP) is used to handle input streams and data and output information on many different types of printers—monochrome/color, impact/non-impact, continuous-form/cut-sheet—as well as on other output technologies such as displays. When the information to be output contains color data, it is important that the colors are rendered accurately and consistently across all device technologies. On color devices the colors should be rendered as accurately as the device gamut allows; on monochrome devices the colors should be simulated with pleasing grayscales.
When printing colored (including grayscale) data, it is often necessary to convert from one color space to another. For example the input data is specified in one device-dependent color space (such as RGB from a scanner) and must be converted into the output color space of the rendering device (such as the printer's CMYK). Typically the color conversion is specified in two parts: a first conversion from the input color space to a device-independent Profile Connection Space (PCS); and a second conversion from the Profile Connection Space to the output device color space. For example, color conversion in a Lookup Table (LUT) based ICC profile often involves at least four process steps: matrix multiplication, use of a one dimensional input lookup table, use of a multidimensional lookup table, and use of a one dimensional output table. This conversion is compute intensive and two such conversions are required, one from the input color space to PCS, and the other from PCS to the output color space. This conversion is done for each pixel of the image. For performance enhancement, devices typically combine the two conversions so that fewer operations are required. This combination is done once for the given pair of color conversions and then used many times, once for each pixel.
However, each image in a printfile may have a different input color space, so the conversion combination needs to happen for each image. The combining process itself is computationally intensive. Sometimes each image specifies the input color space conversion. Often the conversions are the same but this is not known, so the conversion-combination must be redone. This adversely impacts performance dependent on image size.
In the prior art there are several examples of schemes for converting from an input color space to an output color space suitable for printing.
For example, U.S. Pat. No. 5,809,181 and JP 3229753A disclose interpolation schemes for converting from an input color space to an output color space.
Further for example, U.S. Pat. No. 5,699,489 discloses a scheme in which a transmitter and a receiver use a communication protocol to determine the color space conversion capabilities of each side and agree on the color space conversion to be carried out by each side.
Further for example, U.S. Pat. No. 6,758,574 discloses efficient methods for conversion from an input color space to an intermediate color space and from the intermediate color space to an output color space.
Further for example, U.S. Pat. No. 5,787,193 discloses a method for converting from an RGB input color space to a CMYK output color space using look-up tables. Further the number of bits used for each RGB input when converting to each CMY output, is varied in order to emphasize one particular input color for each particular output color.
Further for example, U.S. Pat. No. 6,349,146 discloses converting an image from a device-independent color space to a device-biased color space and then to a device-specific color space. The conversion is such that it can be reversed without loss of data.
However, while the prior art addresses several methods for converting from a first color space to a second color space none provide a method of efficiently supporting conversion from any one of plurality of input color spaces to any one of a plurality of output color spaces. For example, in the prior art such conversion requires specific communication flows in order to determine the appropriate conversion to perform.